import top.malaoshi.data.DataColumn;
import top.malaoshi.data.DataRow;
import top.malaoshi.data.DataTable;
import top.malaoshi.util.Out;

/**
 * 测试数据添加、遍历
 */
public class S3数据_1添加与列类型不匹配的数据 {

    static DataTable createTable(){
        DataTable dt = new DataTable("t_user");

        dt.columns().add("id");
        dt.columns().add("username", DataColumn.Type.TEXT);
        dt.columns().add("password", DataColumn.Type.TEXT);
        dt.columns().add("age", DataColumn.Type.INT);
        dt.columns().add("height", DataColumn.Type.DOUBLE);
        return dt;
    }

    public static void main(String[] args) {

        DataTable dt = createTable();

        dt.rows().add(new Object[]{1,"lilei","123456",20,1.83});
        // 字符串类型的列，添加int、double类型的数据
        DataRow drHmm = dt.rows().add(new Object[]{2, 111, 3.14, 22,1.65});

        // int类型的列，添加string类型的数据
        // 创建 DataRnow
        DataRow dataRow = dt.newRow();
        dt.rows().add(dataRow);
//        通过索引设置数据
        dataRow.setValue( 0,3 );
        dataRow.setValue( 1,"lucy" );
        dataRow.setValue( 2,"333" );
        dataRow.setValue( 3,"22");
        dataRow.setValue( 4,1.73 );

        // int类型的列，添加 string 类型的数据，不能转成int，报错
//        dt.rows().add(new Object[]{4, 111, 3.14, "22呵呵",1.65});

        // int类型的列，添加 double 类型的数据，报错
//        dt.rows().add(new Object[]{4, 111, 3.14, 22.2,1.65});

        // double类型的列，添加int类型的数据
        dt.rows().add(new Object[]{5, "杜子腾", "123456", 22,2});

        // double类型的列，添加 string 类型的数据
        dt.rows().add(new Object[]{6, "张三", "123456", 22,"1.8"});

        // double类型的列，添加 string 类型的数据
        dt.rows().add(new Object[]{6, "李四", "123456", 22,"2"});

        // double类型的列，添加 string 类型的数据，但不能转成double，报错
//        dt.rows().add(new Object[]{6, "王五", "123456", 22,"1.8哈哈"});
        print(dt);
    }
    static void print(DataTable dt){

        Out.println("表名：",dt.getName());

        Out.println("DataRow根据索引获取数据：");
        for(int i = 0,size = dt.rows().count(); i<size ; i++){
            DataRow row = dt.rows().get(i);
            Out.print("",row.getValue(0));
            Out.print(",",row.getValue(1));
            Out.print(",",row.getValue(2));
            Out.print(",",row.getValue(3));
            Out.println(",",row.getValue(4));
        }
    }

}
